/* Add new symbols here. Release commits should copy this section into -released.sym. */
LIBOSTREE_2019.7 {
+global:
+ ostree_commit_sizes_entry_copy;
+ ostree_commit_sizes_entry_free;
+ ostree_commit_sizes_entry_get_type;
+ ostree_commit_sizes_entry_new;
ostree_sysroot_initialize;
ostree_sysroot_is_booted;
ostree_sysroot_set_mount_namespace_in_use;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeAsyncProgress, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeBootconfigParser, g_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeCommitSizesEntry, ostree_commit_sizes_entry_free)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeDeployment, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeGpgVerifyResult, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeKernelArgs, ostree_kernel_args_free)
return g_strdup (hexdigest);
}
+G_DEFINE_BOXED_TYPE (OstreeCommitSizesEntry, ostree_commit_sizes_entry,
+ ostree_commit_sizes_entry_copy, ostree_commit_sizes_entry_free)
+
+/**
+ * ostree_commit_sizes_entry_new:
+ * @checksum: (not nullable): object checksum
+ * @objtype: object type
+ * @unpacked: unpacked object size
+ * @archived: compressed object size
+ *
+ * Create a new #OstreeCommitSizesEntry for representing an object in a
+ * commit's "ostree.sizes" metadata.
+ *
+ * Returns: (transfer full) (nullable): a new #OstreeCommitSizesEntry
+ * Since: 2019.7
+ */
+OstreeCommitSizesEntry *
+ostree_commit_sizes_entry_new (const gchar *checksum,
+ OstreeObjectType objtype,
+ guint64 unpacked,
+ guint64 archived)
+{
+ g_return_val_if_fail (checksum == NULL || ostree_validate_checksum_string (checksum, NULL), NULL);
+
+ g_autoptr(OstreeCommitSizesEntry) entry = g_new0 (OstreeCommitSizesEntry, 1);
+ entry->checksum = g_strdup (checksum);
+ entry->objtype = objtype;
+ entry->unpacked = unpacked;
+ entry->archived = archived;
+
+ return g_steal_pointer (&entry);
+}
+
+/**
+ * ostree_commit_sizes_entry_copy:
+ * @entry: (not nullable): an #OstreeCommitSizesEntry
+ *
+ * Create a copy of the given @entry.
+ *
+ * Returns: (transfer full) (nullable): a new copy of @entry
+ * Since: 2019.7
+ */
+OstreeCommitSizesEntry *
+ostree_commit_sizes_entry_copy (const OstreeCommitSizesEntry *entry)
+{
+ g_return_val_if_fail (entry != NULL, NULL);
+
+ return ostree_commit_sizes_entry_new (entry->checksum,
+ entry->objtype,
+ entry->unpacked,
+ entry->archived);
+}
+
+/**
+ * ostree_commit_sizes_entry_free:
+ * @entry: (transfer full): an #OstreeCommitSizesEntry
+ *
+ * Free given @entry.
+ *
+ * Since: 2019.7
+ */
+void
+ostree_commit_sizes_entry_free (OstreeCommitSizesEntry *entry)
+{
+ g_return_if_fail (entry != NULL);
+
+ g_free (entry->checksum);
+ g_free (entry);
+}
+
/* Used in pull/deploy to validate we're not being downgraded */
gboolean
_ostree_compare_timestamps (const char *current_rev,
_OSTREE_PUBLIC
gchar * ostree_commit_get_content_checksum (GVariant *commit_variant);
+/**
+ * OstreeCommitSizesEntry:
+ * @checksum: (not nullable): object checksum
+ * @objtype: object type
+ * @unpacked: unpacked object size
+ * @archived: compressed object size
+ *
+ * Structure representing an entry in the "ostree.sizes" commit metadata. Each
+ * entry corresponds to an object in the associated commit.
+ *
+ * Since: 2019.5
+ */
+typedef struct {
+ gchar *checksum;
+ OstreeObjectType objtype;
+ guint64 unpacked;
+ guint64 archived;
+} OstreeCommitSizesEntry;
+
+_OSTREE_PUBLIC
+GType ostree_commit_sizes_entry_get_type (void);
+
+_OSTREE_PUBLIC
+OstreeCommitSizesEntry *ostree_commit_sizes_entry_new (const gchar *checksum,
+ OstreeObjectType objtype,
+ guint64 unpacked,
+ guint64 archived);
+_OSTREE_PUBLIC
+OstreeCommitSizesEntry *ostree_commit_sizes_entry_copy (const OstreeCommitSizesEntry *entry);
+_OSTREE_PUBLIC
+void ostree_commit_sizes_entry_free (OstreeCommitSizesEntry *entry);
+
_OSTREE_PUBLIC
gboolean ostree_check_version (guint required_year, guint required_release);